Integrated circuits may be defined as three different classes.
A first class of integrated circuits comprises analog circuits, while a second class of integrated circuits comprises digital circuits and a third class of integrated circuit comprises mixed circuits.
Analog circuits are circuits which comprise inputs, outputs and processing that are strictly of the analog type. An operational amplifier belongs to this first class of integrated circuits.
Digital circuits are circuits whose inputs, outputs and processing are strictly of the digital type. For instance, Random Access Memory (RAM) and microprocessors belong to this second class of integrated circuits.
Mixed circuits comprise both analog and digital inputs and outputs with usually digital processing. For instance, analog to digital converter and fiber optics transceiver belong to this third class.
Recent observations indicate that in all the above-mentioned classes, current integration trends see a doubling of the number of elements in a circuit every two year.
On the other hand, the number of inputs and outputs in a circuit doubles every five years.
As a consequence, this leads to an increasingly greater number of internal nodes and complex circuitry with little or no access to the input/output ports.
It will therefore be appreciated by someone skilled in the art that such a situation increases tasks related to the debugging of a circuit comprising these internal nodes and complex circuitry.
While someone skilled in the art will appreciate that this is especially true in the domain of reconfigurable devices such as Field Programmable Gate Array (FPGA), it will also be appreciated that such limitations are also met in other types of electronic components implementing a processing function such as non-logic circuits. In any cases, it is highly desirable to be able to isolate and test every resources of a processing block in an electronic component.
Common methods used to isolate and test every resource of the FPGA rely on traditional FPGA design tools and often necessitate a reprogramming of the FPGA in order to implement a chosen testing function. In some cases, reprogramming of the FPGA can take a large amount of time.
Some tools have been recently developed by FPGA manufacturers to provide a probe at a selected point of the FPGA to provide its value to an output of the FPGA by appropriate FPGA programming. Someone skilled in the art will appreciate that while such a feature may help a designer to locate potential errors, it does not provide an efficient toolkit to test every resources of the FPGA.
In fact, as the number of outputs of the FPGA is limited, the potential number of probe points is also limited.
There is therefore a need to overcome the above-mentioned drawbacks.